vtd: Require unmap_vtd_domain_page() on a couple of early exit paths.
authorKeir Fraser <keir@xen.org>
Thu, 16 Dec 2010 15:38:57 +0000 (15:38 +0000)
committerKeir Fraser <keir@xen.org>
Thu, 16 Dec 2010 15:38:57 +0000 (15:38 +0000)
From: Jan Beulich <JBeulich@novell.com>
Signed-off-by: Keir Fraser <keir@xen.org>
xen/drivers/passthrough/vtd/iommu.c

index 0f28aa207f2bbb08fc8565204bccd12937ad17fd..3bf4febf96a0f54861f683fb8e7b3760b353c80d 100644 (file)
@@ -1336,6 +1336,7 @@ int domain_context_mapping_one(
     if ( context_set_domain_id(context, domain, iommu) )
     {
         spin_unlock(&iommu->lock);
+        unmap_vtd_domain_page(context_entries);
         return -EFAULT;
     }
 
@@ -1684,6 +1685,7 @@ static int intel_iommu_map_page(
     if ( old.val == new.val )
     {
         spin_unlock(&hd->mapping_lock);
+        unmap_vtd_domain_page(page);
         return 0;
     }
     *pte = new;